Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Linux kernel interfaces</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Linux_kernel_interfaces"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Linux_kernel_interfaces rootpage-Linux_kernel_interfaces skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Linux kernel interfaces</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1251242444">
/* start https://en.wikipedia.org/ */


.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style>

<p>The <a href="Linux_kernel" title="Linux kernel">Linux kernel</a> provides multiple interfaces to <a href="User_space_and_kernel_space" title="User space and kernel space">user-space and kernel-mode</a> code. The interfaces can be classified as either <a href="Application_programming_interface" class="mw-redirect" title="Application programming interface">application programming interface</a> (API) or <a href="Application_binary_interface" title="Application binary interface">application binary interface</a> (ABI), and they can be classified as either kernel–user space or kernel-internal.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Linux_API">Linux API</h2></div>


<p>The Linux API includes the kernel–user space API, which allows code in user space to access system resources and services of the Linux kernel.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> It is composed of the system call interface of the Linux kernel and the subroutines in the <a href="C_standard_library" title="C standard library">C standard library</a>. The focus of the development of the Linux API has been to provide the <i>usable features</i> of the specifications defined in <a href="POSIX" title="POSIX">POSIX</a> in a way which is reasonably compatible, robust and performant, and to provide additional useful features not defined in POSIX, just as the kernel–user space APIs of other systems implementing the POSIX API also provide additional features not defined in POSIX.
</p><p>The Linux API, by choice, has been kept stable over the decades through a policy of not introducing breaking changes; this stability guarantees the portability of <a href="Source_code" title="Source code">source code</a>.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> At the same time, Linux kernel developers have historically been conservative and meticulous about introducing new system calls.
</p><p>Much available <a href="Free_and_open-source_software" title="Free and open-source software">free and open-source software</a> is written for the POSIX API. Since so much more development flows into the Linux kernel as compared to the other POSIX-compliant combinations of kernel and C standard library, the Linux kernel and its API have been augmented with additional features. Programming for the full Linux API, rather than just the POSIX API, may provide advantages in cases where those additional features are useful. Well-known current examples are <a href="Udev" title="Udev">udev</a>, <a href="Systemd" title="Systemd">systemd</a> and <a href="Weston_(software)" class="mw-redirect" title="Weston (software)">Weston</a>.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> People such as <a href="Lennart_Poettering" title="Lennart Poettering">Lennart Poettering</a> openly advocate to prefer the Linux API over the POSIX API, where this offers advantages.<sup id="cite_ref-fosdem1_6-0" class="reference"><a href="#cite_note-fosdem1-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p><p>At <a href="FOSDEM" title="FOSDEM">FOSDEM</a> 2016, <a href="Michael_Kerrisk" title="Michael Kerrisk">Michael Kerrisk</a> explained some of the perceived issues with the Linux kernel's user-space API, describing that it contains multiple design errors by being non-extensible, unmaintainable, overly complex, of limited purpose, in violation of standards, and inconsistent. Most of those mistakes cannot be fixed because doing so would break the ABI that the kernel presents to the user space.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="System_call_interface_of_the_Linux_kernel"> System call interface of the Linux kernel</h3></div>
<p>The <i>system call interface</i> of a kernel is the set of all implemented and available <a href="System_calls" class="mw-redirect" title="System calls">system calls</a> in a kernel. In the Linux kernel, various subsystems, such as the <a href="Direct_Rendering_Manager" title="Direct Rendering Manager">Direct Rendering Manager</a> (DRM), define their own system calls, all of which are part of the system call interface.
</p><p>Various issues with the organization of the Linux kernel system calls are being publicly discussed. Issues have been pointed out by Andy Lutomirski, <a href="Michael_Kerrisk" title="Michael Kerrisk">Michael Kerrisk</a> and others.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="The_C_standard_library">The C standard library</h3></div>

<p>A <a href="C_standard_library" title="C standard library">C standard library</a> for Linux includes wrappers around the system calls of the Linux kernel; the combination of the Linux kernel system call interface and a C standard library is what builds the Linux API. Some popular implementations of the C standard library are
</p>
<ul><li><a href="Glibc" title="Glibc">glibc</a></li>
<li><a href="UClibc" title="UClibc">uClibc</a></li>
<li><a href="Klibc" title="Klibc">klibc</a></li>
<li><a href="Newlib" title="Newlib">Newlib</a></li>
<li><a href="Musl" title="Musl">musl</a></li>
<li><a href="Dietlibc" title="Dietlibc">dietlibc</a></li>
<li><a href="Bionic_(software)" title="Bionic (software)">libbionic</a> and <a href="Hybris_(software)" class="mw-redirect" title="Hybris (software)">libhybris</a></li></ul>
<p>Although the landscape is shifting, amongst these options, glibc remains the most popular implementation, to the point of many treating it as the default and the term equivalent to libc.
</p>
<div class="mw-heading mw-heading4"><h4 id="Additions_to_POSIX">Additions to POSIX</h4></div>
<p>As in other <a href="Unix-like" title="Unix-like">Unix-like</a> systems, additional capabilities of the Linux kernel exist that are not part of POSIX:
</p>
<ul><li><a href="Cgroups" title="Cgroups">cgroups</a> subsystem, the system calls it introduces and libcgroup<sup id="cite_ref-libcgroup_1-1" class="reference"><a href="#cite_note-libcgroup-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></li>
<li>The system calls of the <a href="Direct_Rendering_Manager" title="Direct Rendering Manager">Direct Rendering Manager</a>, especially the driver-private ioctls for the command submission, are <i>not</i> part of the POSIX specifications.</li>
<li><a href="Advanced_Linux_Sound_Architecture" title="Advanced Linux Sound Architecture">Advanced Linux Sound Architecture</a> <i>could</i> set system calls, which are not part of the POSIX specifications</li>
<li>The system calls <code><a href="Futex" title="Futex">futex</a></code> (fast userspace mutex), <code><a href="Epoll" title="Epoll">epoll</a></code>, <code><a href="Splice_(system_call)" title="Splice (system call)">splice</a></code>, <code><a href="Dnotify" title="Dnotify">dnotify</a></code>, <code><a href="Fanotify" class="mw-redirect" title="Fanotify">fanotify</a></code>, and <code><a href="Inotify" title="Inotify">inotify</a></code> have been exclusive to the Linux kernel so far.</li>
<li>The system call <code><a href="Getrandom" class="mw-redirect" title="Getrandom">getrandom</a></code> was introduced in version 3.17 of the <a href="Linux_kernel_mainline" class="mw-redirect" title="Linux kernel mainline">Linux kernel mainline</a><sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup></li>
<li><code>memfd</code> was proposed by the <a href="Kdbus" class="mw-redirect" title="Kdbus">kdbus</a> developers<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup>
<ul><li><code>memfd_create</code> was merged into the Linux kernel mainline in kernel version 3.17</li></ul></li>
<li><code><a href="Readahead" title="Readahead">readahead</a></code> initiates a file "read-ahead" into page cache</li></ul>
<p><a href="Direct_Rendering_Manager" title="Direct Rendering Manager">DRM</a> has been paramount for the development and implementations of well-defined and performant <a href="Free_and_open-source_graphics_device_driver#Software_architecture" title="Free and open-source graphics device driver">free and open-source graphics device drivers</a> without which no rendering acceleration would be available at all, only the 2D drivers would be available in the <a href="X.Org_Server" title="X.Org Server">X.Org Server</a>. DRM was developed for Linux, and since has been ported to other operating systems as well.<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Further_libraries">Further libraries</h3></div>
<ul><li>libdrm (for <a href="Direct_Rendering_Manager" title="Direct Rendering Manager">Direct Rendering Manager</a>)</li>
<li>libnl (The libnl suite is a collection of libraries providing APIs to netlink protocol based Linux kernel interfaces.)</li>
<li>libevdev (for <a href="Evdev" title="Evdev">evdev</a>)</li>
<li>libasound (<a href="Advanced_Linux_Sound_Architecture" title="Advanced Linux Sound Architecture">Advanced Linux Sound Architecture</a>)</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Linux_ABI">Linux ABI</h2></div>


<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">Main articles: <a href="X32_ABI" title="X32 ABI">x32 ABI</a> and <a href="Linux_Standard_Base" title="Linux Standard Base">Linux Standard Base</a></div>
<p>The Linux ABI is a kernel–user space ABI. As ABI is a <a href="Machine_code" title="Machine code">machine code</a> interface, the Linux ABI is bound to the <a href="Instruction_set" class="mw-redirect" title="Instruction set">instruction set</a>. Defining a useful ABI and keeping it stable is less the responsibility of the Linux kernel developers or of the developers of the GNU C Library, and more the task for <a href="Linux_distribution" title="Linux distribution">Linux distributions</a> and <a href="Independent_software_vendor" title="Independent software vendor">independent software vendors</a> (ISVs) who wish to sell and provide support for their proprietary software as binaries only for such a single Linux ABI, as opposed to supporting multiple Linux ABIs.
</p><p>An ABI has to be defined for every instruction set, such as <a href="X86" title="X86">x86</a>, <a href="X86-64" title="X86-64">x86-64</a>, <a href="MIPS_architecture" title="MIPS architecture">MIPS</a>, <a href="ARMv7-A" class="mw-redirect" title="ARMv7-A">ARMv7-A</a> (32-Bit), <a href="ARMv8-A" class="mw-redirect" title="ARMv8-A">ARMv8-A</a> (64-Bit), etc. with the <a href="Endianness" title="Endianness">endianness</a>, if both are supported.
</p><p>It should be able to compile the software with different compilers against the definitions specified in the ABI and achieve full binary compatibility. Compilers that are <a href="Free_and_open-source_software" title="Free and open-source software">free and open-source software</a> are e.g. <a href="GNU_Compiler_Collection" title="GNU Compiler Collection">GNU Compiler Collection</a>, <a href="LLVM" title="LLVM">LLVM</a>/<a href="Clang" title="Clang">Clang</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="In-kernel_APIs">In-kernel APIs</h2></div>
<p>Many kernel-internal APIs exist, allowing kernel subsystems to interface with one another. These are being kept fairly stable, but there is no guarantee for stability. A kernel-internal API can be changed when such a need is indicated by new research or insights; all necessary modifications and testing have to be done by the author.
</p><p>The Linux kernel is a monolithic kernel, hence device drivers are kernel components. To ease the burden of companies maintaining their (proprietary) device drivers outside of the main kernel tree, stable APIs for the device drivers have been repeatedly requested. The Linux kernel developers have repeatedly denied guaranteeing stable in-kernel APIs for device drivers. Guaranteeing such would have faltered the development of the Linux kernel in the past and would still in the future and, due to the nature of free and open-source software, are not necessary. Ergo, by choice, the Linux kernel has no <i>stable</i> in-kernel API.<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="In-kernel_ABIs">In-kernel ABIs</h2></div>
<p>Since there are no stable in-kernel APIs, there cannot be stable in-kernel ABIs.<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Abstraction_APIs">Abstraction APIs</h2></div>


<p>For many use cases, the Linux API is considered too low-level, so APIs of higher abstraction must be used. Higher-level APIs must be implemeted on top of lower-level APIs. Examples:
</p>
<ul><li>Implementation of the <a href="OpenGL" title="OpenGL">OpenGL</a> and <a href="Vulkan_(API)" class="mw-redirect" title="Vulkan (API)">Vulkan</a> specifications in proprietary Linux graphics drivers and the free and open-source implementation in <a href="Mesa_(computer_graphics)" title="Mesa (computer graphics)">Mesa</a>.</li>
<li>Implementation of the <a href="OpenAL" title="OpenAL">OpenAL</a> specification.</li>
<li><a href="Simple_DirectMedia_Layer" title="Simple DirectMedia Layer">Simple DirectMedia Layer</a>: abstraction API for input/sound/etc. available for many operating systems.</li>
<li><a href="Simple_and_Fast_Multimedia_Library" title="Simple and Fast Multimedia Library">Simple and Fast Multimedia Library</a>: like above.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1266661725">
/* start https://en.wikipedia.org/ */


.mw-parser-output .portalbox{padding:0;margin:0.5em 0;display:table;box-sizing:border-box;max-width:175px;list-style:none}.mw-parser-output .portalborder{border:1px solid var(--border-color-base,#a2a9b1);padding:0.1em;background:var(--background-color-neutral-subtle,#f8f9fa)}.mw-parser-output .portalbox-entry{display:table-row;font-size:85%;line-height:110%;height:1.9em;font-style:italic;font-weight:bold}.mw-parser-output .portalbox-image{display:table-cell;padding:0.2em;vertical-align:middle;text-align:center}.mw-parser-output .portalbox-link{display:table-cell;padding:0.2em 0.2em 0.2em 0.3em;vertical-align:middle}@media(min-width:720px){.mw-parser-output .portalleft{margin:0.5em 1em 0.5em 0}.mw-parser-output .portalright{clear:right;float:right;margin:0.5em 0 0.5em 1em}}


/* end https://en.wikipedia.org/ */
</style>
<ul><li><a href="File_descriptor" title="File descriptor">File descriptor</a>&nbsp;– System resource identifier in operating systems</li>
<li><a href="Hybris_(software)" class="mw-redirect" title="Hybris (software)">Hybris (software)</a>&nbsp;– Compatibility layer to run Android drivers on glibc or musl-based Linux systems<span style="display:none" class="category-annotation-with-redirected-description">Pages displaying short descriptions of redirect targets</span></li>
<li><i><a href="The_Linux_Programming_Interface" title="The Linux Programming Interface">The Linux Programming Interface</a>&nbsp;– Book by Michael Kerrisk</i></li>
<li><a href="Netlink" title="Netlink">netlink</a>&nbsp;– Linux kernel interface for inter-process communication between processes</li>
<li><a href="Semaphore_(programming)" title="Semaphore (programming)">Semaphore (programming)</a>&nbsp;– Variable used in a concurrent system</li>
<li><a href="System_call" title="System call">system call</a>&nbsp;– Way for programs to access kernel services</li>
<li><a href="Windows_API" title="Windows API">Windows API</a>&nbsp;– Microsoft's core set of application programming interfaces on Windows</li>
<li><a href="Windows.h" title="Windows.h">windows.h</a>&nbsp;– Defines access to the Windows API in C language syntax</li>
<li><a href="Wine_(software)" title="Wine (software)">Wine (software)</a>&nbsp;– Windows compatibility software</li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist reflist-columns references-column-width" style="column-width: 30em;">
<ol class="references">
<li id="cite_note-libcgroup-1"><span class="mw-cite-backlink">^ <a href="#cite_ref-libcgroup_1-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-libcgroup_1-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.freedesktop.org/wiki/Software/systemd/ControlGroupInterface/">"ControlGroupInterface"</a>. <a href="Freedesktop.org" title="Freedesktop.org">freedesktop.org</a>.</cite></span>
</li>
<li id="cite_note-libevdev-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-libevdev_2-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.freedesktop.org/wiki/Software/libevdev/">"libevdev"</a>. <a href="Freedesktop.org" title="Freedesktop.org">freedesktop.org</a>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite id="CITEREFAlessandro_Rubini2006" class="citation web cs1">Alessandro Rubini (2006-11-02). <a rel="nofollow" class="external text" href="https://www.linux.it/~rubini/docs/ksys/ksys.html">"Kernel System Calls"</a>. <i>linux.it</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2014-11-11</span></span>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite id="CITEREFLinus_Torvalds2012" class="citation web cs1">Linus Torvalds (2012-12-23). <a rel="nofollow" class="external text" href="https://lkml.org/lkml/2012/12/23/75">"Re: [Regression w/ patch] Media commit causes user space to misbahave (was: Re: Linux 3.8-rc1)"</a>. <a href="Linux_kernel_mailing_list" title="Linux kernel mailing list">Linux kernel mailing list</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2014-08-26</span></span>. <q>If a change results in user programs breaking, it's a bug in the kernel. We never EVER blame the user programs.</q></cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lwn.net/Articles/430598/">"Choosing between portability and innovation"</a>. <a href="LWN.net" title="LWN.net">LWN.net</a>. 2011-03-02.</cite></span>
</li>
<li id="cite_note-fosdem1-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-fosdem1_6-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://archive.fosdem.org/2011/interview/lennart-poettering.html">"Interview: Lennart Poettering - Lennart Poettering will give a talk about "Systemd: beyond init" at FOSDEM 2011"</a>. fosdem.org. 2011<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-06-16</span></span>. <q><i>In fact, the way I see things the <b><a href="Linux_kernel_API" class="mw-redirect" title="Linux kernel API">Linux API</a></b> has been taking the role of the <b>POSIX API</b> and Linux is the focal point of all Free Software development. Due to that I can only recommend developers to try to hack with only Linux in mind and experience the freedom and the opportunities this offers you. So, get yourself a copy of <a href="The_Linux_Programming_Interface" title="The Linux Programming Interface">The Linux Programming Interface</a>, ignore everything it says about <a href="POSIX" title="POSIX">POSIX</a> compatibility and hack away your amazing Linux software. It's quite relieving!</i></q></cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite id="CITEREFMichael_Kerrisk2016" class="citation web cs1"><a href="Michael_Kerrisk" title="Michael Kerrisk">Michael Kerrisk</a> (2016-01-31). <a rel="nofollow" class="external text" href="https://archive.fosdem.org/2016/schedule/event/design_linux_kernel_api/">"How to design a Linux kernel API"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2016-02-04</span></span>.</cite></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.linux-magazine.com/Issues/2014/165/Kernel-News">"System Call Organization"</a>.</cite></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lkml.org/lkml/2014/2/27/571">"Making a universal list of syscalls?"</a>. <a href="LKML" class="mw-redirect" title="LKML">LKML</a>. 2014-02-27.</cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lwn.net/Articles/585415/">"Flags as a system call API design pattern"</a>. <a href="LWN.net" title="LWN.net">LWN.net</a>. 2014-02-12.</cite></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lwn.net/Articles/446528/">"On vsyscalls and the vDSO"</a>. <a href="LWN.net" title="LWN.net">LWN.net</a>. 2011-06-08.</cite></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lkml.org/lkml/2014/7/17/145">"[PATCH, RFC] random: introduce getrandom(2) system call"</a>. <a href="Linux_kernel_mailing_list" title="Linux kernel mailing list">LKML</a>. 2014-07-17.</cite></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://archive.today/20140422172420/https://github.com/gregkh/kdbus/blob/master/memfd.c">"memfd.c"</a>. <i><a href="GitHub" title="GitHub">GitHub</a></i>. Archived from <a rel="nofollow" class="external text" href="https://github.com/gregkh/kdbus/blob/master/memfd.c">the original</a> on 2014-04-22.</cite></span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.phoronix.com/scan.php?page=news_item&amp;px=MTYzNTQ">"NetBSD 7.0 Will Finally Have DRM/KMS Drivers"</a>. <a href="Phoronix" class="mw-redirect" title="Phoronix">Phoronix</a>. 2014-03-19.</cite></span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/stable-api-nonsense.rst">"The Linux Kernel Driver Interface"</a>.</cite></span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://abi-laboratory.pro/tracker/timeline/linux/">"Analysis of ABI changes in the Linux kernel"</a>. Andrey Ponomarenko's ABI laboratory. 2016-03-15.</cite></span>
</li>
</ol></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://www.kernel.org/doc/html/v5.0/core-api/kernel-api.html">The Linux Kernel API 5.0</a>, <a rel="nofollow" class="external text" href="https://www.kernel.org/doc/html/v5.0/core-api/mm-api.html">Memory Management APIs 5.0</a> (new <a href="Sphinx_(documentation_generator)" title="Sphinx (documentation generator)">sphinx</a> format)</li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20070227215533/http://www.gnugeneration.com/books/linux/2.6.20/kernel-api/">The API of Linux kernel 2.6.20</a> and <a rel="nofollow" class="external text" href="https://www.kernel.org/doc/htmldocs/kernel-api/">4.12</a> (in deprecated htmldocs format)</li>
<li><a rel="nofollow" class="external text" href="https://abi-laboratory.pro/?view=timeline&amp;l=linux">API/ABI changes review for Linux</a></li>
<li><a rel="nofollow" class="external text" href="https://man7.org/tlpi/">The Linux Programming Interface</a> book, <a rel="nofollow" class="external text" href="https://man7.org/tlpi/api_changes/">Linux and <i>glibc</i> API changes</a> since <a href="The_Linux_Programming_Interface" title="The Linux Programming Interface">The Linux Programming Interface</a> was released in 2010</li>
<li><a rel="nofollow" class="external text" href="https://archive.today/20121220032539/http://www.makelinux.net/kernel_map/">Interactive Linux kernel map</a> with main API functions and structures, <a rel="nofollow" class="external text" href="https://web.archive.org/web/20180827040646/http://www.makelinux.net/kernel_map/LKM.pdf">PDF</a> version</li>
<li><a rel="nofollow" class="external text" href="https://archive.today/20130221193824/http://www.makelinux.net/ldd3">Linux Device Drivers</a> by Jonathan Corbet, Greg Kroah-Hartman and Alessandro Rubini, 3rd edition</li>
<li><a rel="nofollow" class="external text" href="http://isis.poly.edu/kulesh/stuff/src/klist/">Linux Kernel Linked List Explained</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20090925130610/http://isis.poly.edu/kulesh/stuff/src/klist/">Archived</a> 2009-09-25 at the <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a></li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Linux_kernel514" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div id="Linux_kernel514" style="font-size:114%;margin:0 4em"><a href="Linux_kernel" title="Linux kernel">Linux kernel</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Organization</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th id="Kernel19" scope="row" class="navbox-group" style="width:1%">Kernel</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Linux_Foundation" title="Linux Foundation">Linux Foundation</a></li>
<li><a href="Linux_Mark_Institute" title="Linux Mark Institute">Linux Mark Institute</a></li>
<li><a href="Linus's_law" title="Linus's law">Linus's law</a></li>
<li><a href="Tanenbaum%E2%80%93Torvalds_debate" title="Tanenbaum–Torvalds debate">Tanenbaum–Torvalds debate</a></li>
<li><a href="Tux_(mascot)" title="Tux (mascot)">Tux</a></li>
<li><a href="SCO%E2%80%93Linux_disputes" title="SCO–Linux disputes">SCO disputes</a></li>
<li><a href="Linaro" title="Linaro">Linaro</a></li>
<li><a href="GNU_General_Public_License#Version_2" title="GNU General Public License">GNU GPL v2</a></li>
<li><a href="Menuconfig" title="Menuconfig">menuconfig</a></li>
<li><a href="List_of_Linux-supported_computer_architectures" title="List of Linux-supported computer architectures">Supported computer architectures</a></li>
<li><a href="Linux_kernel_version_history" title="Linux kernel version history">Version history</a></li>
<li><a href="Criticism_of_Linux" title="Criticism of Linux">Criticism</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Support</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li>Developers
<ul><li><i><a href="The_Linux_Programming_Interface" title="The Linux Programming Interface">The Linux Programming Interface</a></i></li>
<li><a href="Kernel.org" title="Kernel.org">kernel.org</a></li>
<li><a href="Linux_kernel_mailing_list" title="Linux kernel mailing list">LKML</a></li>
<li><a href="Linux_conference" class="mw-redirect" title="Linux conference">Linux conferences</a></li></ul></li>
<li>Users
<ul><li><a href="Linux_user_group" title="Linux user group">Linux User Group (LUG)</a></li></ul></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">People</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Werner_Almesberger" title="Werner Almesberger">Werner Almesberger</a></li>
<li><a href="H._Peter_Anvin" title="H. Peter Anvin">H. Peter Anvin</a></li>
<li><a href="Jens_Axboe" title="Jens Axboe">Jens Axboe</a></li>
<li><a href="Moshe_Bar_(investor)" title="Moshe Bar (investor)">Moshe Bar</a></li>
<li><a href="Suparna_Bhattacharya" title="Suparna Bhattacharya">Suparna Bhattacharya</a></li>
<li><a href="Andries_Brouwer" title="Andries Brouwer">Andries Brouwer</a></li>
<li><a href="R%C3%A9my_Card" title="Rémy Card">Rémy Card</a></li>
<li><a href="Alan_Cox_(computer_programmer)" title="Alan Cox (computer programmer)">Alan Cox</a></li>
<li><a href="Matthew_Garrett" title="Matthew Garrett">Matthew Garrett</a></li>
<li><a href="Avi_Kivity" title="Avi Kivity">Avi Kivity</a></li>
<li><a href="Con_Kolivas" title="Con Kolivas">Con Kolivas</a></li>
<li><a href="Greg_Kroah-Hartman" title="Greg Kroah-Hartman">Greg Kroah-Hartman</a></li>
<li><a href="Benson_Leung" title="Benson Leung">Benson Leung</a></li>
<li><a href="Robert_Love" title="Robert Love">Robert Love</a></li>
<li><a href="David_S._Miller" title="David S. Miller">David S. Miller</a></li>
<li><a href="Ingo_Moln%C3%A1r" title="Ingo Molnár">Ingo Molnár</a></li>
<li><a href="Andrew_Morton_(computer_programmer)" title="Andrew Morton (computer programmer)">Andrew Morton</a></li>
<li><a href="Hans_Reiser" title="Hans Reiser">Hans Reiser</a></li>
<li><a href="Rusty_Russell" title="Rusty Russell">Rusty Russell</a></li>
<li><a href="Shuah_Khan" title="Shuah Khan">Shuah Khan</a></li>
<li><a href="Linus_Torvalds" title="Linus Torvalds">Linus Torvalds</a></li>
<li><a href="Theodore_Ts'o" title="Theodore Ts'o">Theodore Ts'o</a></li>
<li><a href="Stephen_Tweedie" title="Stephen Tweedie">Stephen Tweedie</a></li>
<li><a href="Harald_Welte" title="Harald Welte">Harald Welte</a></li>
<li><a href="Chris_Wright_(programmer)" title="Chris Wright (programmer)">Chris Wright</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Technical</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Debugging</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="CRIU" title="CRIU">CRIU</a></li>
<li><a href="Ftrace" title="Ftrace">ftrace</a></li>
<li><a href="Kdump_(Linux)" title="Kdump (Linux)">kdump</a></li>
<li><a href="Linux_kernel_oops" title="Linux kernel oops">Linux kernel oops</a></li>
<li><a href="SystemTap" title="SystemTap">SystemTap</a></li>
<li><a href="Berkeley_Packet_Filter" title="Berkeley Packet Filter">BPF</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Booting_process_of_Linux" title="Booting process of Linux">Startup</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Vmlinux" title="Vmlinux">vmlinux</a></li>
<li><a href="System.map" title="System.map">System.map</a></li>
<li><a href="Dracut_(software)" title="Dracut (software)">dracut</a></li>
<li><a href="Initrd" class="mw-redirect" title="Initrd">initrd</a></li>
<li><a href="Initramfs" class="mw-redirect" title="Initramfs">initramfs</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Linux_Standard_Base" title="Linux Standard Base">Linux Standard Base</a></li>
<li><a href="X32_ABI" title="X32 ABI">x32 ABI</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Kernel</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a class="mw-selflink-fragment" href="#SCI">System Call<br>Interface</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="POSIX" title="POSIX">POSIX</a>
<ul><li><a href="Ioctl" title="Ioctl">ioctl</a></li>
<li><a href="Select_(Unix)" title="Select (Unix)">select</a></li>
<li><a href="Open_(system_call)" title="Open (system call)">open</a></li>
<li><a href="Read_(system_call)" title="Read (system call)">read</a></li>
<li><a href="Close_(system_call)" title="Close (system call)">close</a></li>
<li><a href="Sync_(Unix)" title="Sync (Unix)">sync</a></li>
<li>…</li></ul></li>
<li><a class="mw-selflink-fragment" href="#Additions_to_POSIX">Linux-only</a>
<ul><li><a href="Futex" title="Futex">futex</a></li>
<li><a href="Epoll" title="Epoll">epoll</a></li>
<li><a href="Splice_(system_call)" title="Splice (system call)">splice</a></li>
<li><a href="Dnotify" title="Dnotify">dnotify</a></li>
<li><a href="Inotify" title="Inotify">inotify</a></li>
<li><a href="Readahead" title="Readahead">readahead</a></li>
<li>…</li></ul></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a class="mw-selflink-fragment" href="#In–kernel_APIs">In-kernel</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Advanced_Linux_Sound_Architecture" title="Advanced Linux Sound Architecture">ALSA</a></li>
<li><a href="Crypto_API_(Linux)" title="Crypto API (Linux)">Crypto API</a></li>
<li><a href="Io_uring" title="Io uring">io uring</a></li>
<li><a href="Direct_Rendering_Manager" title="Direct Rendering Manager">DRM</a></li>
<li><a href="Kernfs_(Linux)" title="Kernfs (Linux)">kernfs</a></li>
<li><a href="Memory_barrier" title="Memory barrier">Memory barrier</a></li>
<li><a href="New_API" title="New API">New API</a></li>
<li><a href="Read-copy-update" title="Read-copy-update">RCU</a></li>
<li><a href="Video4Linux" title="Video4Linux">Video4Linux</a></li>
<li><a href="IIO_Framework" title="IIO Framework">IIO</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="User_space_and_kernel_space" title="User space and kernel space">Userspace</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Daemon_(computing)" title="Daemon (computing)">Daemons</a>,<br><a href="Virtual_file_system" title="Virtual file system">File systems</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li>bpffs</li>
<li><a href="Configfs" title="Configfs">configfs</a></li>
<li><a href="Devfs" class="mw-redirect" title="Devfs">devfs</a></li>
<li><a href="Devpts" title="Devpts">devpts</a></li>
<li><a href="Debugfs" title="Debugfs">debugfs</a></li>
<li><a href="Filesystem_in_Userspace" title="Filesystem in Userspace">FUSE</a></li>
<li>hugetlbfs</li>
<li>pipefs</li>
<li><a href="Procfs" title="Procfs">procfs</a></li>
<li>securityfs</li>
<li>sockfs</li>
<li><a href="Sysfs" title="Sysfs">sysfs</a></li>
<li><a href="Tmpfs" title="Tmpfs">tmpfs</a></li>
<li><a href="Systemd" title="Systemd">systemd</a>
<ul><li><a href="Udev" title="Udev">udev</a></li></ul></li>
<li><a href="Kmscon" title="Kmscon">Kmscon</a></li>
<li><a href="Binfmt_misc" title="Binfmt misc">binfmt_misc</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Wrapper_library" title="Wrapper library">Wrapper<br>libraries</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="C_standard_library" title="C standard library">C standard library</a>
<ul><li><a href="Glibc" title="Glibc">glibc</a></li>
<li><a href="UClibc" title="UClibc">uClibc</a></li>
<li><a href="Bionic_(software)" title="Bionic (software)">Bionic</a>
<ul><li><a href="Libhybris" title="Libhybris">libhybris</a></li></ul></li>
<li><a href="Dietlibc" title="Dietlibc">dietlibc</a></li>
<li><a href="Embedded_GLIBC" class="mw-redirect" title="Embedded GLIBC">EGLIBC</a></li>
<li><a href="Klibc" title="Klibc">klibc</a></li>
<li><a href="Musl" title="Musl">musl</a></li>
<li><a href="Newlib" title="Newlib">Newlib</a></li></ul></li>
<li><a href="Cgroups" title="Cgroups">libcgroup</a></li>
<li><a href="Direct_Rendering_Manager" title="Direct Rendering Manager">libdrm</a></li>
<li><a href="Advanced_Linux_Sound_Architecture" title="Advanced Linux Sound Architecture">libalsa</a></li>
<li><a href="Evdev" title="Evdev">libevdev</a></li>
<li><a href="Libusb" title="Libusb">libusb</a></li>
<li><a href="Io_uring" title="Io uring">liburing</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Components</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Loadable_kernel_module" title="Loadable kernel module">Kernel modules</a></li>
<li><a href="BlueZ" class="mw-redirect" title="BlueZ">BlueZ</a></li>
<li><a href="Cgroups" title="Cgroups">cgroups</a></li>
<li><a href="Linux_console" title="Linux console">Console</a></li>
<li><a href="Bcache" title="Bcache">bcache</a></li>
<li><a href="Device_mapper" title="Device mapper">Device mapper</a></li>
<li><a href="Dm-cache" title="Dm-cache">dm-cache</a></li>
<li><a href="Dm-crypt" title="Dm-crypt">dm-crypt</a></li>
<li><a href="Direct_Rendering_Manager" title="Direct Rendering Manager">DRM</a></li>
<li><a href="EDAC_(Linux)" class="mw-redirect" title="EDAC (Linux)">EDAC</a></li>
<li><a href="Evdev" title="Evdev">evdev</a></li>
<li><a href="Kernel_same-page_merging" title="Kernel same-page merging">Kernel same-page merging</a> (KSM)</li>
<li><a href="LIO_(SCSI_target)" title="LIO (SCSI target)">LIO</a></li>
<li><a href="Linux_framebuffer" title="Linux framebuffer">Framebuffer</a></li>
<li><a href="Logical_Volume_Manager_(Linux)" title="Logical Volume Manager (Linux)">LVM</a></li>
<li><a href="KMS_driver" class="mw-redirect" title="KMS driver">KMS driver</a></li>
<li><a href="Netfilter" title="Netfilter">Netfilter</a></li>
<li><a href="Netlink" title="Netlink">Netlink</a></li>
<li><a href="Nftables" title="Nftables">nftables</a></li>
<li><a href="Network_scheduler" title="Network scheduler">Network scheduler</a></li>
<li><a href="Perf_(Linux)" title="Perf (Linux)">perf</a></li>
<li><a href="SLUB_(software)" title="SLUB (software)">SLUB</a></li>
<li><a href="Zram" title="Zram">zram</a></li>
<li><a href="Zswap" title="Zswap">zswap</a></li></ul>
<ul><li><a href="Scheduling_(computing)#Linux" title="Scheduling (computing)">Process and I/O schedulers</a>:</li>
<li><a href="Brain_Fuck_Scheduler" title="Brain Fuck Scheduler">Brain Fuck Scheduler</a></li>
<li><a href="Completely_Fair_Scheduler" title="Completely Fair Scheduler">Completely Fair Scheduler</a> (CFS)</li>
<li><a href="Earliest_eligible_virtual_deadline_first_scheduling" title="Earliest eligible virtual deadline first scheduling">Earliest eligible virtual deadline first</a> (EEVDF)</li>
<li><a href="Noop_scheduler" title="Noop scheduler">Noop scheduler</a></li>
<li><a href="O(n)_scheduler" title="O(n) scheduler">O(n) scheduler</a></li>
<li><a href="O(1)_scheduler" title="O(1) scheduler">O(1) scheduler</a></li>
<li><a href="SCHED_DEADLINE" title="SCHED DEADLINE">SCHED_DEADLINE</a></li>
<li><a href="SCHED_FIFO" class="mw-redirect" title="SCHED FIFO">SCHED_FIFO</a></li>
<li><a href="SCHED_RR" class="mw-redirect" title="SCHED RR">SCHED_RR</a></li></ul>
<ul><li><a href="Linux_Security_Modules" title="Linux Security Modules">Security Modules</a>: <a href="AppArmor" title="AppArmor">AppArmor</a></li>
<li><a href="Exec_Shield" title="Exec Shield">Exec Shield</a></li>
<li><a href="Seccomp" title="Seccomp">seccomp</a></li>
<li><a href="Security-Enhanced_Linux" title="Security-Enhanced Linux">SELinux</a></li>
<li><a href="Smack_(software)" title="Smack (software)">Smack</a></li>
<li><a href="Tomoyo_Linux" title="Tomoyo Linux">Tomoyo Linux</a></li>
<li><a href="Linux_PAM" title="Linux PAM">Linux PAM</a></li></ul>
<ul><li><a href="Device_driver" title="Device driver">Device drivers</a>
<ul><li><a href="Comparison_of_open-source_wireless_drivers" title="Comparison of open-source wireless drivers">802.11</a></li>
<li><a href="Free_and_open-source_graphics_device_driver" title="Free and open-source graphics device driver">graphics</a></li></ul></li>
<li><a href="Raw_device" title="Raw device">Raw device</a></li></ul>
<ul><li><a href="Initramfs" class="mw-redirect" title="Initramfs">initramfs</a></li>
<li><a href="KernelCare" title="KernelCare">KernelCare</a></li>
<li><a href="Kexec" title="Kexec">kexec</a></li>
<li><a href="KGraft" title="KGraft">kGraft</a></li>
<li><a href="Kpatch" title="Kpatch">kpatch</a></li>
<li><a href="Ksplice" title="Ksplice">Ksplice</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Variants</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Mainline_Linux" class="mw-redirect" title="Mainline Linux">Mainline</a>
<ul><li><a href="Linux_kernel" title="Linux kernel">Linux kernel</a></li>
<li><a href="Linux-libre" title="Linux-libre">Linux-libre</a></li></ul></li>
<li><a href="High-performance_computing" title="High-performance computing">High-performance computing</a>
<ul><li><a href="INK_(operating_system)" title="INK (operating system)">INK</a></li>
<li><a href="Compute_Node_Linux" title="Compute Node Linux">Compute Node Linux</a></li>
<li><a href="Slurm_Workload_Manager" title="Slurm Workload Manager">SLURM</a></li></ul></li>
<li><a href="Real-time_computing" title="Real-time computing">Real-time computing</a>
<ul><li><a href="RTLinux" title="RTLinux">RTLinux</a></li>
<li><a href="RTAI" title="RTAI">RTAI</a></li>
<li><a href="Xenomai" title="Xenomai">Xenomai</a></li>
<li><a href="PREEMPT_RT" title="PREEMPT RT">PREEMPT_RT</a></li></ul></li>
<li><a href="Memory_management_unit" title="Memory management unit">MMU</a>-less
<ul><li><a href="%CE%9CClinux" title="ΜClinux">μClinux</a></li>
<li><a href="PSXLinux" title="PSXLinux">PSXLinux</a></li></ul></li></ul>
</div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th id="Virtualization18" scope="row" class="navbox-group" style="width:1%"><a href="Virtualization" title="Virtualization">Virtualization</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Hypervisor" title="Hypervisor">Hypervisor</a>
<ul><li><a href="Kernel-based_Virtual_Machine" title="Kernel-based Virtual Machine">KVM</a></li>
<li><a href="Xen" title="Xen">Xen</a></li></ul></li>
<li><a href="OS-level_virtualization" title="OS-level virtualization">OS-level virtualization</a>
<ul><li><a href="Linux-VServer" title="Linux-VServer">Linux-VServer</a></li>
<li><a href="Lguest" title="Lguest">Lguest</a></li>
<li><a href="LXC" title="LXC">LXC</a></li>
<li><a href="OpenVZ" title="OpenVZ">OpenVZ</a></li></ul></li>
<li>Other
<ul><li><a href="L4Linux" title="L4Linux">L4Linux</a></li>
<li><a href="User-mode_Linux" title="User-mode Linux">User-mode Linux</a></li>
<li><a href="MkLinux" title="MkLinux">MkLinux</a></li>
<li><a href="Cooperative_Linux" title="Cooperative Linux">coLinux</a></li></ul></li></ul>
</div></td></tr></tbody></table><div>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Linux_adoption" title="Linux adoption">Adoption</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th id="Rangeof_use48" scope="row" class="navbox-group" style="width:1%"><a href="Linux_range_of_use" title="Linux range of use">Range<br>of use</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Linux_desktop_environments" class="mw-redirect" title="Linux desktop environments">Desktop</a></li>
<li><a href="Linux_on_embedded_systems" title="Linux on embedded systems">Embedded</a></li>
<li><a href="Video_games_and_Linux" title="Video games and Linux">Gaming</a></li>
<li>Thin client:
<ul><li><a href="Linux_Terminal_Server_Project" title="Linux Terminal Server Project">LTSP</a></li></ul></li>
<li>Server:
<ul><li><a href="LAMP_(software_bundle)" title="LAMP (software bundle)">LAMP</a></li>
<li><a href="LYME_(software_bundle)" title="LYME (software bundle)">LYME-LYCE</a></li></ul></li>
<li><a href="Linux-powered_device" title="Linux-powered device">Devices</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Adopters</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="List_of_Linux_adopters" title="List of Linux adopters">List of Linux adopters</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><b><span class="nowrap"><span class="noviewer" typeof="mw:File"></span> </span><a href="Portal%3ALinux" title="Portal:Linux">Linux portal</a></b></li>
<li><b><span class="nowrap"><span class="noviewer" typeof="mw:File"><span></span></span> </span><a href="Portal%3AFree_and_open-source_software" title="Portal:Free and open-source software">Free and open-source software portal</a></b></li>
<li><span class="noviewer" typeof="mw:File"><span title="Category"></span></span> <b>Category</b></li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox" aria-labelledby="Operating_systems310" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Operating_systems310" style="font-size:114%;margin:0 4em"><a href="Operating_system" title="Operating system">Operating systems</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">General</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Comparison_of_operating_systems" title="Comparison of operating systems">Comparison</a></li>
<li><a href="Forensic_software_engineering" title="Forensic software engineering">Forensic engineering</a></li>
<li><a href="History_of_operating_systems" title="History of operating systems">History</a></li>
<li><a href="List_of_operating_systems" title="List of operating systems">List</a></li>
<li><a href="Timeline_of_operating_systems" title="Timeline of operating systems">Timeline</a></li>
<li><a href="Usage_share_of_operating_systems" title="Usage share of operating systems">Usage share</a></li>
<li><a href="Comparison_of_user_features_of_operating_systems" title="Comparison of user features of operating systems">User features comparison</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Variants</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Disk_operating_system" title="Disk operating system">Disk operating system</a></li>
<li><a href="Distributed_operating_system" title="Distributed operating system">Distributed operating system</a></li>
<li><a href="Embedded_operating_system" title="Embedded operating system">Embedded operating system</a></li>
<li><a href="Hobbyist_operating_system" title="Hobbyist operating system">Hobbyist operating system</a></li>
<li><a href="Just_enough_operating_system" title="Just enough operating system">Just enough operating system</a></li>
<li><a href="Mobile_operating_system" title="Mobile operating system">Mobile operating system</a></li>
<li><a href="Network_operating_system" title="Network operating system">Network operating system</a></li>
<li><a href="Object-oriented_operating_system" title="Object-oriented operating system">Object-oriented operating system</a></li>
<li><a href="Real-time_operating_system" title="Real-time operating system">Real-time operating system</a></li>
<li><a href="Supercomputer_operating_system" title="Supercomputer operating system">Supercomputer operating system</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Kernel_(operating_system)" title="Kernel (operating system)">Kernel</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:6em"><a href="Computer_architecture" title="Computer architecture">Architectures</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Exokernel" title="Exokernel">Exokernel</a></li>
<li><a href="Hybrid_kernel" title="Hybrid kernel">Hybrid</a></li>
<li><a href="Microkernel" title="Microkernel">Microkernel</a></li>
<li><a href="Monolithic_kernel" title="Monolithic kernel">Monolithic</a></li>
<li><a href="Multikernel" title="Multikernel">Multikernel</a></li>
<li><a href="Vkernel" title="Vkernel">vkernel</a></li>
<li><a href="Rump_kernel" title="Rump kernel">Rump kernel</a></li>
<li><a href="Unikernel" title="Unikernel">Unikernel</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:6em">Components</th><td class="navbox-list-with-group navbox-list navbox-even" style="padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Device_driver" title="Device driver">Device driver</a></li>
<li><a href="Loadable_kernel_module" title="Loadable kernel module">Loadable kernel module</a></li>
<li><a href="User_space_and_kernel_space" title="User space and kernel space">User space and kernel space</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Process_management_(computing)" title="Process management (computing)">Process management</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:6em">Concepts</th><td class="navbox-list-with-group navbox-list navbox-odd" style="padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Computer_multitasking" title="Computer multitasking">Computer multitasking</a> (<a href="Cooperative_multitasking" title="Cooperative multitasking">Cooperative</a>, <a href="Preemption_(computing)" title="Preemption (computing)">Preemptive</a>)</li>
<li><a href="Context_switch" title="Context switch">Context switch</a></li>
<li><a href="Interrupt" title="Interrupt">Interrupt</a></li>
<li><a href="Inter-process_communication" title="Inter-process communication">IPC</a></li>
<li><a href="Process_(computing)" title="Process (computing)">Process</a></li>
<li><a href="Process_control_block" title="Process control block">Process control block</a></li>
<li><a href="Real-time_operating_system" title="Real-time operating system">Real-time</a></li>
<li><a href="Thread_(computing)" title="Thread (computing)">Thread</a></li>
<li><a href="Time-sharing" title="Time-sharing">Time-sharing</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:6em"><a href="Scheduling_(computing)" title="Scheduling (computing)">Scheduling<br>algorithms</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Fixed-priority_pre-emptive_scheduling" title="Fixed-priority pre-emptive scheduling">Fixed-priority preemptive</a></li>
<li><a href="Multilevel_feedback_queue" title="Multilevel feedback queue">Multilevel feedback queue</a></li>
<li><a href="Round-robin_scheduling" title="Round-robin scheduling">Round-robin</a></li>
<li><a href="Shortest_job_next" title="Shortest job next">Shortest job next</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Memory_management_(operating_systems)" title="Memory management (operating systems)">Memory management</a>,<br><a href="System_resource" title="System resource">resource</a> protection</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Bus_error" title="Bus error">Bus error</a></li>
<li><a href="General_protection_fault" title="General protection fault">General protection fault</a></li>
<li><a href="Memory_paging" title="Memory paging">Memory paging</a></li>
<li><a href="Memory_protection" title="Memory protection">Memory protection</a></li>
<li><a href="Protection_ring" title="Protection ring">Protection ring</a></li>
<li><a href="Segmentation_fault" title="Segmentation fault">Segmentation fault</a></li>
<li><a href="Virtual_memory" title="Virtual memory">Virtual memory</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Non-volatile_memory" title="Non-volatile memory">Storage</a> access,<br><a href="File_system" title="File system">file systems</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Booting#BOOT-LOADER" title="Booting">Boot loader</a></li>
<li><a href="Defragmentation" title="Defragmentation">Defragmentation</a></li>
<li><a href="Device_file" title="Device file">Device file</a></li>
<li><a href="File_attribute" title="File attribute">File attribute</a></li>
<li><a href="Inode" title="Inode">Inode</a></li>
<li><a href="Journaling_file_system" title="Journaling file system">Journal</a></li>
<li><a href="Disk_partitioning" title="Disk partitioning">Partition</a></li>
<li><a href="Virtual_file_system" title="Virtual file system">Virtual file system</a></li>
<li><a href="Virtual_tape_library" title="Virtual tape library">Virtual tape library</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Supporting concepts</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="API" title="API">API</a></li>
<li><a href="Computer_network" title="Computer network">Computer network</a></li>
<li><a href="Hardware_abstraction" title="Hardware abstraction">HAL</a></li>
<li><a href="Live_CD" title="Live CD">Live CD</a></li>
<li><a href="Live_USB" title="Live USB">Live USB</a></li>
<li><a href="Shell_(computing)" title="Shell (computing)">Shell</a>
<ul><li><a href="Command-line_interface" title="Command-line interface">CLI</a></li>
<li><a href="User_interface" title="User interface">User interface</a></li></ul></li>
<li><a href="Preboot_Execution_Environment" title="Preboot Execution Environment">PXE</a></li></ul>
</div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-08-02" href="https://en.wikipedia.org/wiki/?title=Linux_kernel_interfaces&amp;oldid=1303891575">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>